# 作业：
# 1、编写函数，从键盘输入一字符串，把其中的各个字符颠倒，标点符号不颠倒，例如，‘I enjoy reading!’，经过函数调用后变为‘gnidaeryojneI’
# def func(string):
#     list1 = []
#     answer_list = []
#     for i in string:
#         if i.isalnum():
#             list1.append(i)
#         else:
#             list1.insert(0, i)
#     for n in list1[::-1]:
#         answer_list.append(n)
#     return ''.join(answer_list)
#
# str1 = "I enjoy reading!"
# answer = func(str1)
# print("颠倒后的东西：",answer)


# 2、找出列表 a = [“hello”, “world”, “yoyo”, “congratulations”] 中单词最长的一个。
# a = ["hello", "world", "yoyo", "congratulations",]
# def func():
#     global a
#     answer = []
#     for i in a:
#         for n in a:
#             if len(i) > len(n):
#                 answer = i
#             elif len(i) < len(n):
#                 answer = n
#     return answer
# print(f"列表中单词最长的一个是:",func())


# 3、如果有一个列表 a = [1,3,5,7,11]，那么如何让它反转成 [11,7,5,3,1]，并且取到奇数位值的数字 [1,5,11]
# a = [1,3,5,7,11]
# def func():
#     global a
#     reverse_list = []
#     Odd_number_list = []
#     for i in a[::-1]:
#         reverse_list.append(i)
#     print(f"反转后的列表为:",reverse_list)
#     for n in range(len(a)):
#         if n % 2 == 0:
#             Odd_number_list.append(a[n])
#     print(f"奇位数的数字为:",Odd_number_list)
# func()

# 4、输入一个包含若干任意数据类型的列表，输出该列表中等价于True的元素组成的列表，
# 例如，输入[1,0,2,None,False,"a"]，输出[1,2,'a']
# def func(lists):
#     answer_list = []
#     for i in lists:
#         if i == True:
#             answer_list.append(i)
#     print(answer_list)
#
# user_add = input('请输入包含若干任意数据类型的列表')
# answer = func(user_add)


# 5、给你一个数组 nums 和一个值 val，你需要 原地 移除所有数值等于 val 的元素，并返回移除后数组的新长度。
# 示例：
# 输入：nums = [3,2,2,3], val = 3
# 输出：2, nums = [2,2]
# def func(a,b):
#     T = b
#     nums = []
#     for i in a:
#         if i != T:
#             nums.append(i)
#     print(len(nums))
#     print(nums)
#
# nums = [3,2,2,3]
# val = 3
# func(nums,val)


# 6、给定一个排序数组和一个目标值，在数组中找到目标值，并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。
# 示例 1:
# 输入: nums = [1,3,5,6], target = 5
# 输出: 2
# 示例 2:
# 输入: nums = [1,3,5,6], target = 2
# 输出: 1
# 示例 3:
# 输入: nums = [1,3,5,6], target = 7
# 输出: 4
# nums = [1,3,5,6]

# def TargetValue(nums,target):
#     for i in range(len(nums)):
#         if nums[i] >= target:
#             return i
#
# nums = [1,3,5,6]
# target = 7
# print(TargetValue(nums,target))

# target = 5
# def func():
#     global nums
#     global target
#     num = int(target)
#     answer_list = []
#     for i in range(len(nums)):
#         if  i == num:
#             answer_list.append(i)
#     print(answer_list)
#     return answer_list
#
# answer = func()
# func()
# print(answer)


# 7、给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息，信息用长度为 15 的字符串表示，表示方式如下：
# 前十个字符是乘客的手机号码。
# 接下来的一个字符是乘客的性别。
# 接下来两个字符是乘客的年龄。
# 最后两个字符是乘客的座位号。
# 请你返回乘客中年龄 严格大于 60 岁 的人数
#
# 示例 1：
# 输入：details = ["7868190130M7522","5303914400F9211","9273338290F4010"]
# 输出：2
# 解释：下标为 0 ，1 和 2 的乘客年龄分别为 75 ，92 和 40 。所以有 2 人年龄大于 60 岁
# 示例 2：
# 输入：details = ["1313579440F2036","2921522980M5644"]
# 输出：0
# 解释：没有乘客的年龄大于 60 岁。
# def func(details):
#     count = 0
#     for i in details:
#         age = int(i[11:13])
#         if age > 60:
#             count += 1
#     return count
#
# details = ["7868190130M7522", "5303914400F9211", "9273338290F4010"]
# print(f"一共有: ",func(details),"个人的年龄大于60岁")
# details = ["1313579440F2036", "2921522980M5644"]
# print(f"一共有: ",func(details),"个人的年龄大于60岁")


# 8、写函数监测用户传入的对象（字符，列表，元组）的每一个元素是否有空内容
# def func(string,lists,tuples):
#     for i in string:
#         if len(i) == 0:
#             print("字符对象为空")
#         elif len(i) != 0:
#             print("字符对象不为空")
#     for n in lists:
#         if len(n)+1 == 0:
#             print("列表对象为空")
#         if len(n)+1 != 0:
#             print("列表对象不为空")
#     for t in tuples:
#         if len(t)+1 == 0:
#             print("元组对象为空")
#         if len(t)+1 != 0:
#             print("元组对象不为空")
#
# str1 = ["7868190130M7522"]
# lsit1 =[1,2,3,4]
# tuple1 = (1, "apple", True)
# print(func(str1,lsit1,tuple1))


# 9、 随机生成20个学生的成绩; 判断这20个学生成绩的等级;
#  A：（90~100） B：（80~89） C：80以下
def func(aa):
    student_list_A = []
    student_list_B = []
    student_list_C = []
    for i in aa:
        if i >= 90 and i <= 100:
            student_list_A.append(i)
        elif i >= 80 and i <= 89:
            student_list_B.append(i)
        elif i < 80:
            student_list_C.append(i)
    print(f"A等级为:{student_list_A}",f"B等级为:{student_list_B}",f"C等级为:{student_list_C}")

import random
student_grades = [random.randint(0, 100) for _ in range(20)]
func(student_grades)


# 10、编写一个用户登录函数（用户名密码提前设置）；
# 返回用户登录成功或者失败的结果；
# user = admin
# password = Aa123456
#
# def func(user1,password1):
#     global user
#     global password
#     user1 = input("请输入用户名: ")
#     password1 = input("请输入密码: ")
#     for i in user1:
#         if i == user:
#             print("用户名正确")
#         else:
#             print("用户名错误")
#     for n in password:
#         if n == password1:
#             print("密码正确")
#         else:
#             print("密码错误")
#
# func(user1,password1)

